(define (my-reverse2 listx list2)    
    (if (null? listx)
        list2
        (append            
            (my-reverse2  
                (cdr listx) 
                list2
            )            
            (append 
                list2                
                (cons (car listx) `())
            )           
        )
    )        
)
(define (my-reverse lista)
    (my-reverse2 lista (list ))
)
(define x (list (list 1 2) (list 3 4)))
(display (my-reverse x))
(newline)


(define (deep-reverse2 listx list2)    
    (if (null? listx)
        list2
        (append            
            (deep-reverse2  
                (cdr listx) 
                list2
            )            
            (append 
                list2                
                (cons 
                    (if (list? (car listx))                       
                        (deep-reverse (car listx))
                        (car listx)
                    ) 
                    `()

                )
            )           
        )
    )        
)
(define (deep-reverse lista)
    (deep-reverse2 lista (list ))
)
(display (deep-reverse x))
(exit)